package com.ruoyi.system.service.aggregation;

import java.util.List;
import com.ruoyi.system.domain.aggregation.MerchantProfitConfig;

/**
 * 商家个性化分润配置Service接口
 * 
 * @author ruoyi
 * @date 2025-01-10
 */
public interface IMerchantProfitConfigService 
{
    /**
     * 查询商家个性化分润配置
     * 
     * @param id 商家个性化分润配置主键
     * @return 商家个性化分润配置
     */
    public MerchantProfitConfig selectMerchantProfitConfigById(Long id);

    /**
     * 根据商家ID查询分润配置
     * 
     * @param merchantId 商家ID
     * @return 商家个性化分润配置
     */
    public MerchantProfitConfig selectMerchantProfitConfigByMerchantId(Long merchantId);

    /**
     * 查询商家个性化分润配置列表
     * 
     * @param merchantProfitConfig 商家个性化分润配置
     * @return 商家个性化分润配置集合
     */
    public List<MerchantProfitConfig> selectMerchantProfitConfigList(MerchantProfitConfig merchantProfitConfig);

    /**
     * 新增商家个性化分润配置
     * 
     * @param merchantProfitConfig 商家个性化分润配置
     * @return 结果
     */
    public int insertMerchantProfitConfig(MerchantProfitConfig merchantProfitConfig);

    /**
     * 修改商家个性化分润配置
     * 
     * @param merchantProfitConfig 商家个性化分润配置
     * @return 结果
     */
    public int updateMerchantProfitConfig(MerchantProfitConfig merchantProfitConfig);

    /**
     * 批量删除商家个性化分润配置
     * 
     * @param ids 需要删除的商家个性化分润配置主键集合
     * @return 结果
     */
    public int deleteMerchantProfitConfigByIds(Long[] ids);

    /**
     * 删除商家个性化分润配置信息
     * 
     * @param id 商家个性化分润配置主键
     * @return 结果
     */
    public int deleteMerchantProfitConfigById(Long id);

    /**
     * 审核商家分润配置
     * 
     * @param merchantProfitConfig 审核信息
     * @return 结果
     */
    public int auditMerchantProfitConfig(MerchantProfitConfig merchantProfitConfig);

    /**
     * 为商家创建默认分润配置
     * 
     * @param merchantId 商家ID
     * @param merchantName 商家名称
     * @return 结果
     */
    public int createDefaultConfigForMerchant(Long merchantId, String merchantName);

    /**
     * 验证分润比例总和
     * 
     * @param config 分润配置
     * @return 验证结果
     */
    public boolean validateProfitRates(MerchantProfitConfig config);

    /**
     * 获取商家异业联盟分润配置
     * 
     * @param merchantId 商家ID
     * @return 分润配置
     */
    public MerchantProfitConfig getInterIndustryConfig(Long merchantId);

    /**
     * 获取商家广告收益分润配置
     * 
     * @param merchantId 商家ID
     * @return 分润配置
     */
    public MerchantProfitConfig getAdRevenueConfig(Long merchantId);
}
